package o2o.dao.VO.order;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import o2o.cache.order.OrderStatusNameMemory;
import o2o.dao.PO.order.OrderGoods;
import o2o.dao.PO.order.OrderInfoGoods;

import java.util.List;

//其他订单信息
@Setter
@Getter
@Accessors(chain = true)
public class OtherOrderInfoVO {

    private Long id; // 标识
    private String orderNo; // 订单编号

    private Integer type;//类型  1跑腿 2代购

    private String username; // 提交订单的用户账号
    private Long carTipId;
    private String carTipName;
    private int vehicleType; //运输工具类型 1摩托车，2三轮车，3小货车，4中型平板
    private int orderStatus; // 订单状态
    private String orderStatusName; // 订单状态
    private String orderStatusNameLang; // 订单状态多语言
    private String postmanName; // 配送员姓名
    private Integer preDayNo;//每日编号

    private String goodsType;//物品类型
    private String goods;//物品信息
    private String weight;//重量
    private Double totalWeight;
    private Double goodsPrice;//预期商品价格
    private Double deliveryPrice;//配送费
    private Double xiaofei;//小费金额
    private Double weightPrice;//重量金额
    private Double specialPrice;//特殊配送金额
    private Double yunfeixianPrice; // 运费险价格
    private Double totalMoney;//总计金额（需支付金额）
    private Double policyMoney; //保险金额
    private Integer isBuyInsurance; // 是否有保险
    private Integer isRefundApply;//用户申请退款  0未申请退款 1申请退款 2申请退款成功 3申请退款未通过

    private Long fromId; // 出发地ID
    private Long toId; // 目的地ID

    private String toUser;//收货人姓名
    private String toPhone;//收货人联系电话
    private String toAddress;//收货人地址
    private String toProvince;//收货省
    private String toCity;//收货市
    private String toCounty;//收货区县
    private Double toLat = 0d; //纬度
    private Double toLng = 0d; //经度

    private Integer isPostingCancel;   //   是不是配送员配送中取消的

    private String fromUser;//发货人姓名
    private String fromPhone;//发货人联系电话
    private String fromAddress;//发货人地址
    private String fromProvince;//发货省
    private String fromCity;//发货市
    private String fromCounty;//发货区县
    private Double fromLng = 0d; //发货经度
    private Double fromLat = 0d; //发货纬度

    private Long pickUpTime; //取件时间

    private String yunfeixian;//运费险
    private String special;//特殊配送要求
    private String note;//备注
    private int isTroubleOrder = 0;  // 是不是异常订单

    private String payType; // 付款方式(1:网上支付，2:货到付款，3支付宝，4微信)
    private String cancelReason; // 取消订单的原因
    private String rejectReason; // 拒收的原因
    private String refundReason; // 退货的原因
    private String reBackReason; // 商家拒绝退款原因
    private String chargeId; // 对应的ping++的支付凭证
    private Long payTime; //订单支付时间


    //    private int isBackStock; // 是否归还库存的状态(1:未归还 0）
    private int delFlag; // 是否已删除(0未删除,1已删除)
    private String createUser; // 创建者
    private Long createTime; // 创建日期

    private Integer isUrgent = 0;//是否加急   1加急 0非加急

    private Integer isPaid;//已经成功支付成功
    private String paySign;//支付签名
    private Integer userDel; // 用户删除
    private Double distance;    // 距离
    private Long agentId;   // 代理id

    private List<SpecialVO> specialVOList; // 货运特殊服务说明

    private List<OrderGameRulesVO> gameAward;//活动信息

    private String deliveryCallBack;        // 配送订单回调地址
    private String deliveryPlateOrderNo;    // 配送平台订单

    private Long orderDeliveryTime;

    private String sorts;

    private List<OrderInfoGoods> goodsList;


    //    public List<SpecialVO> getSpecialVOList() {
//        return specialVOList;
//    }
//
//    public OtherOrderInfoVO setSpecialVOList(List<SpecialVO> specialVOList) {
//        this.specialVOList = specialVOList;
//        return this;
//    }
//
//    public Integer getUserDel() {
//        return userDel;
//    }
//
//    public void setUserDel(Integer userDel) {
//        this.userDel = userDel;
//    }
//
//    public Long getId() {
//        return id;
//    }
//
//    public void setId(Long id) {
//        this.id = id;
//    }
//
//    public String getOrderNo() {
//        return orderNo;
//    }
//
//    public void setOrderNo(String orderNo) {
//        this.orderNo = orderNo;
//    }
//
//    public String getUsername() {
//        return username;
//    }
//
//    public void setUsername(String username) {
//        this.username = username;
//    }
//
//    public int getVehicleType() {
//        return vehicleType;
//    }
//
//    public void setVehicleType(int vehicleType) {
//        this.vehicleType = vehicleType;
//    }
//
//    public int getOrderStatus() {
//        return orderStatus;
//    }
//
//    public void setOrderStatus(int orderStatus) {
//        this.orderStatus = orderStatus;
//    }
//
//    public String getGoodsType() {
//        return goodsType;
//    }
//
//    public void setGoodsType(String goodsType) {
//        this.goodsType = goodsType;
//    }
//
//    public String getGoods() {
//        return goods;
//    }
//
//    public void setGoods(String goods) {
//        this.goods = goods;
//    }
//
//    public String getWeight() {
//        return weight;
//    }
//
//    public void setWeight(String weight) {
//        this.weight = weight;
//    }
//
//    public Double getGoodsPrice() {
//        return goodsPrice;
//    }
//
//    public void setGoodsPrice(Double goodsPrice) {
//        this.goodsPrice = goodsPrice;
//    }
//
//    public Double getDeliveryPrice() {
//        return deliveryPrice;
//    }
//
//    public void setDeliveryPrice(Double deliveryPrice) {
//        this.deliveryPrice = deliveryPrice;
//    }
//
//    public Long getFromId() {
//        return fromId;
//    }
//
//    public void setFromId(Long fromId) {
//        this.fromId = fromId;
//    }
//
//    public Long getToId() {
//        return toId;
//    }
//
//    public void setToId(Long toId) {
//        this.toId = toId;
//    }
//
//    public String getToUser() {
//        return toUser;
//    }
//
//    public void setToUser(String toUser) {
//        this.toUser = toUser;
//    }
//
//    public String getToPhone() {
//        return toPhone;
//    }
//
//    public void setToPhone(String toPhone) {
//        this.toPhone = toPhone;
//    }
//
//    public String getToAddress() {
//        return toAddress;
//    }
//
//    public void setToAddress(String toAddress) {
//        this.toAddress = toAddress;
//    }
//
//    public String getToProvince() {
//        return toProvince;
//    }
//
//    public void setToProvince(String toProvince) {
//        this.toProvince = toProvince;
//    }
//
//    public String getToCity() {
//        return toCity;
//    }
//
//    public void setToCity(String toCity) {
//        this.toCity = toCity;
//    }
//
//    public String getToCounty() {
//        return toCounty;
//    }
//
//    public void setToCounty(String toCounty) {
//        this.toCounty = toCounty;
//    }
//
//    public Double getToLat() {
//        return toLat;
//    }
//
//    public void setToLat(Double toLat) {
//        this.toLat = toLat;
//    }
//
//    public Double getToLng() {
//        return toLng;
//    }
//
//    public void setToLng(Double toLng) {
//        this.toLng = toLng;
//    }
//
//    public String getFromUser() {
//        return fromUser;
//    }
//
//    public void setFromUser(String fromUser) {
//        this.fromUser = fromUser;
//    }
//
//    public String getFromPhone() {
//        return fromPhone;
//    }
//
//    public void setFromPhone(String fromPhone) {
//        this.fromPhone = fromPhone;
//    }
//
//    public String getFromAddress() {
//        return fromAddress;
//    }
//
//    public void setFromAddress(String fromAddress) {
//        this.fromAddress = fromAddress;
//    }
//
//    public String getFromProvince() {
//        return fromProvince;
//    }
//
//    public void setFromProvince(String fromProvince) {
//        this.fromProvince = fromProvince;
//    }
//
//    public String getFromCity() {
//        return fromCity;
//    }
//
//    public void setFromCity(String fromCity) {
//        this.fromCity = fromCity;
//    }
//
//    public String getFromCounty() {
//        return fromCounty;
//    }
//
//    public void setFromCounty(String fromCounty) {
//        this.fromCounty = fromCounty;
//    }
//
//    public Double getFromLng() {
//        return fromLng;
//    }
//
//    public void setFromLng(Double fromLng) {
//        this.fromLng = fromLng;
//    }
//
//    public Double getFromLat() {
//        return fromLat;
//    }
//
//    public void setFromLat(Double fromLat) {
//        this.fromLat = fromLat;
//    }
//
//    public Long getPickUpTime() {
//        return pickUpTime;
//    }
//
//    public void setPickUpTime(Long pickUpTime) {
//        this.pickUpTime = pickUpTime;
//    }
//
//    public String getNote() {
//        return note;
//    }
//
//    public void setNote(String note) {
//        this.note = note;
//    }
//
//    public String getPayType() {
//        return payType;
//    }
//
//    public void setPayType(String payType) {
//        this.payType = payType;
//    }
//
//    public String getCancelReason() {
//        return cancelReason;
//    }
//
//    public void setCancelReason(String cancelReason) {
//        this.cancelReason = cancelReason;
//    }
//
//    public String getRejectReason() {
//        return rejectReason;
//    }
//
//    public void setRejectReason(String rejectReason) {
//        this.rejectReason = rejectReason;
//    }
//
//    public String getRefundReason() {
//        return refundReason;
//    }
//
//    public void setRefundReason(String refundReason) {
//        this.refundReason = refundReason;
//    }
//
//    public String getChargeId() {
//        return chargeId;
//    }
//
//    public void setChargeId(String chargeId) {
//        this.chargeId = chargeId;
//    }
//
//    public Long getPayTime() {
//        return payTime;
//    }
//
//    public void setPayTime(Long payTime) {
//        this.payTime = payTime;
//    }
//
//
//    public int getDelFlag() {
//        return delFlag;
//    }
//
//    public void setDelFlag(int delFlag) {
//        this.delFlag = delFlag;
//    }
//
//    public String getCreateUser() {
//        return createUser;
//    }
//
//    public void setCreateUser(String createUser) {
//        this.createUser = createUser;
//    }
//
//    public Long getCreateTime() {
//        return createTime;
//    }
//
//    public void setCreateTime(Long createTime) {
//        this.createTime = createTime;
//    }
//
//    public Double getXiaofei() {
//        return xiaofei;
//    }
//
//    public void setXiaofei(Double xiaofei) {
//        this.xiaofei = xiaofei;
//    }
//
//    public Double getWeightPrice() {
//        return weightPrice;
//    }
//
//    public void setWeightPrice(Double weightPrice) {
//        this.weightPrice = weightPrice;
//    }
//
//    public Double getSpecialPrice() {
//        return specialPrice;
//    }
//
//    public void setSpecialPrice(Double specialPrice) {
//        this.specialPrice = specialPrice;
//    }
//
//    public String getYunfeixian() {
//        return yunfeixian;
//    }
//
//    public void setYunfeixian(String yunfeixian) {
//        this.yunfeixian = yunfeixian;
//    }
//
//    public String getSpecial() {
//        return special;
//    }
//
//    public void setSpecial(String special) {
//        this.special = special;
//    }
//
//    public Integer getIsUrgent() {
//        return isUrgent;
//    }
//
//    public void setIsUrgent(Integer isUrgent) {
//        this.isUrgent = isUrgent;
//    }
//
//    public Integer getIsPaid() {
//        return isPaid;
//    }
//
//    public void setIsPaid(Integer isPaid) {
//        this.isPaid = isPaid;
//    }
//
//    public String getPaySign() {
//        return paySign;
//    }
//
//    public void setPaySign(String paySign) {
//        this.paySign = paySign;
//    }
//
//    public Integer getType() {
//        return type;
//    }
//
//    public void setType(Integer type) {
//        this.type = type;
//    }
//
//    public Double getTotalMoney() {
//        return totalMoney;
//    }
//
//    public void setTotalMoney(Double totalMoney) {
//        this.totalMoney = totalMoney;
//    }
//
    public String getOrderStatusName() {
        orderStatusName = OrderStatusNameMemory.getInstance().getStatusName(orderStatus);
        return orderStatusName;
    }

    public String getOrderStatusNameLang() {
        orderStatusNameLang = OrderStatusNameMemory.getInstance().getStatusNameLang(orderStatus);
        return orderStatusNameLang;
    }


//
//    public void setOrderStatusName(String orderStatusName) {
//        this.orderStatusName = orderStatusName;
//    }


    @Override
    public String toString() {
        return "OtherOrderInfoVO{" +
                "id=" + id +
                ", orderNo='" + orderNo + '\'' +
                ", type=" + type +
                ", username='" + username + '\'' +
                ", carTipId=" + carTipId +
                ", carTipName='" + carTipName + '\'' +
                ", vehicleType=" + vehicleType +
                ", orderStatus=" + orderStatus +
                ", orderStatusName='" + orderStatusName + '\'' +
                ", orderStatusNameLang='" + orderStatusNameLang + '\'' +
                ", postmanName='" + postmanName + '\'' +
                ", preDayNo=" + preDayNo +
                ", goodsType='" + goodsType + '\'' +
                ", goods='" + goods + '\'' +
                ", weight='" + weight + '\'' +
                ", totalWeight=" + totalWeight +
                ", goodsPrice=" + goodsPrice +
                ", deliveryPrice=" + deliveryPrice +
                ", xiaofei=" + xiaofei +
                ", weightPrice=" + weightPrice +
                ", specialPrice=" + specialPrice +
                ", yunfeixianPrice=" + yunfeixianPrice +
                ", totalMoney=" + totalMoney +
                ", policyMoney=" + policyMoney +
                ", isBuyInsurance=" + isBuyInsurance +
                ", isRefundApply=" + isRefundApply +
                ", fromId=" + fromId +
                ", toId=" + toId +
                ", toUser='" + toUser + '\'' +
                ", toPhone='" + toPhone + '\'' +
                ", toAddress='" + toAddress + '\'' +
                ", toProvince='" + toProvince + '\'' +
                ", toCity='" + toCity + '\'' +
                ", toCounty='" + toCounty + '\'' +
                ", toLat=" + toLat +
                ", toLng=" + toLng +
                ", isPostingCancel=" + isPostingCancel +
                ", fromUser='" + fromUser + '\'' +
                ", fromPhone='" + fromPhone + '\'' +
                ", fromAddress='" + fromAddress + '\'' +
                ", fromProvince='" + fromProvince + '\'' +
                ", fromCity='" + fromCity + '\'' +
                ", fromCounty='" + fromCounty + '\'' +
                ", fromLng=" + fromLng +
                ", fromLat=" + fromLat +
                ", pickUpTime=" + pickUpTime +
                ", yunfeixian='" + yunfeixian + '\'' +
                ", special='" + special + '\'' +
                ", note='" + note + '\'' +
                ", isTroubleOrder=" + isTroubleOrder +
                ", payType='" + payType + '\'' +
                ", cancelReason='" + cancelReason + '\'' +
                ", rejectReason='" + rejectReason + '\'' +
                ", refundReason='" + refundReason + '\'' +
                ", reBackReason='" + reBackReason + '\'' +
                ", chargeId='" + chargeId + '\'' +
                ", payTime=" + payTime +
                ", delFlag=" + delFlag +
                ", createUser='" + createUser + '\'' +
                ", createTime=" + createTime +
                ", isUrgent=" + isUrgent +
                ", isPaid=" + isPaid +
                ", paySign='" + paySign + '\'' +
                ", userDel=" + userDel +
                ", distance=" + distance +
                ", agentId=" + agentId +
                ", specialVOList=" + specialVOList +
                ", gameAward=" + gameAward +
                ", deliveryCallBack='" + deliveryCallBack + '\'' +
                ", deliveryPlateOrderNo='" + deliveryPlateOrderNo + '\'' +
                ", orderDeliveryTime=" + orderDeliveryTime +
                ", sorts='" + sorts + '\'' +
                ", goodsList=" + goodsList +
                '}';
    }
}
